The present invention is directed to diagnosing faults on printed-circuit boards that result from open circuits in the connections to the input pins of devices mounted on such boards.
Many assembled printed-circuit boards embody enormously complex electronic circuitry. A board can thus have any one of a very large number of different types of possible faults, for which the assembled printed-circuit board must be tested. From the standpoint of circuit operation, the largest part of the complexity, of course, results from the internal organizations of the various devices mounted on the board, many of which incorporate thousands of transistors apiece. Despite these devices' internal complexity, however, the overwhelming majority of the faults encountered in the testing of complex printed-circuit boards result not from the internal operations of the devices themselves but rather from improper device mounting, and many of the device-mounting problems result from bad solder connections or other sources of open circuits.
To test it for these and other faults, a circuit board is typically placed on a "bed of nails" array of probes, which simultaneously contact various nodes on the board. By means of these probes, sequences of test vectors, i.e., of sets of node signals, are applied at some nodes, the resultant response is sensed at other nodes, and the board is declared faulty if the sensed signals differ from the nominal response that a good board would produce.
Once the tester has determined that the board is faulty, it is often desirable for it also to be able to diagnose the fault, i.e., to determine not only that a fault exists but also what that fault is. While almost all types of faults can readily be detected by such automatic circuit testing, many types of faults tend to evade diagnosis: the tester can detect the fault affect but cannot identify the fault that caused it. Some simple open circuits are among faults of that type. Most open circuits in the connections of device output pins can readily be detected: stimuli are applied that cause the signal at the output pin in question to change, and the resultant signals are observed on a node to which that output pin should be connected. If no change occurs, of course, then the fault has been diagnosed. Because of certain complicating factors, diagnoses of this type may not be possible in every case, but most open circuits on output nodes can be diagnosed automatically simply by bed-of-nails probing.
The same could not heretofore have been said of open circuits between device input pins and nodes to which board conductive paths should connect them. Of course, the open circuit does affect the operation of the improperly mounted device. But the relationship between a given input and the device's outputs is quite complex in most reasonably sophisticated devices, and this makes it difficult to determine, from a given symptom in the output, whether it is caused by an input-pin open circuit or, if so, which input pin is the one that is improperly connected.
One way of dealing with this problem is simply to apply signals to input nodes--i.e., to nodes to which a device's input pin should be in electrical communication--and then, by means of a hand probe, to contact a device input pin and determine whether the signal on the pin is the same as that applied to the associated input node. But the manual operation that this approach requires increases labor costs and greatly slows the testing process. For boards that employ so-called surface-mount technology, moreover, the difficulty of obtaining access to the input pin may preclude its use entirely.
Another approach is the fault-dictionary approach. In this approach, the faulty response is observed and compared with a "dictionary" of faulty responses, including the responses that result from open circuits at input nodes. But generating such a fault dictionary requires sophisticated fault simulation, and, although software for such simulation is available, the board manufacturer may not consider it worthwhile to invest the considerable effort required to use it to develop the fault dictionary. As a practical matter, moreover, the fault-dictionary approach lends itself only to diagnosis of faults that occur alone; it is not practical to generate and store dictionary entries for all fault combinations.